/*
编写一个程序，接受用户输入的一个字符串，并将该字符串中的空格去除后输出。(原地O(1), 不允许开辟空间)
*/
#include <stdio.h>
#include <string.h>

#define BUFFER_SIZE 32

// 指针函数返回的是一个指针
char * deleteSpace(char *str)
{
    if (str == NULL)
    {
        return 0;
    }

    int len = strlen(str);
    int jdx = 0;
    for (int idx = 0; idx < len; idx++)
    {
        if (str[idx] != ' ')
        {
            str[jdx] = str[idx];
            /* 移动下一个位置 */
            jdx++;
        }
    }
    /* 在末尾添加空字符 */
    str[jdx + 1] = '\0';

    return str;
}

/* const 限定的字符串一定是传入参数：传入参数是不可以更改的 */
int removeStringSpace(char * str)
{
    /* str[idx] = *(str + idx) */
    if (str == NULL)
    {
        return 0;
    }

    int pos = 0;
    char * tmpStr = str;
    while (*tmpStr != '\0')
    {
        if (*tmpStr != ' ')
        {
            //*(str + pos) = *tmpStr;
            str[pos] = *tmpStr;
            pos++;
        }
        tmpStr++;
    }
    /* 添加结束符 */
    str[pos] = '\0';
    return 0;
}

int main()
{
    char str[BUFFER_SIZE] = "nice to meet   you";

    /* deleteSpace(str); */
    removeStringSpace(str);
    printf("去除空格后的字符串为: %s\n", str);

    return 0;
}